﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;

namespace DAL_Class
{
    public class Admin
    {
        public bool AddNewAdmin(Administrator ad)
        {
            NLLDataContext db = new NLLDataContext();
            //string result = string.Empty;
            try
            {
                IEnumerable<Administrator> ga = from a in db.Administrators where a.Username == ad.Username select a;
                if (ga.Count() > 0)
                {
                   // result = "Tài khoản đăng nhập đã tồn tại !";
                    return false;
                }
                else
                {
                    db.Administrators.InsertOnSubmit(ad);
                    db.SubmitChanges();
                    //result = "Thêm mới thành công!";
                    return true;
                }
            }
            catch (Exception ex)
            {
                throw ex;
                return false;
            }
            
            
        }

        public string DeleteAdmin(int ID)
        {
            NLLDataContext db = new NLLDataContext();
            string result = string.Empty;
            try
            {
                if (ID > 1)
                {
                    Administrator ga = db.Administrators.Single(a => a.ID == ID);
                    db.Administrators.DeleteOnSubmit(ga);
                    result = "Xóa thành công!";
                }
                else {
                    result = "Đây là tài khoản quản trị cao nhất nên bạn không có quyền xóa.";
                }
                              
            }
            catch (Exception ex)
            {
                throw ex;
            }
            return result;
        }

        public string UpdateAdmin(Administrator ad)
        {
            NLLDataContext db = new NLLDataContext();
            string result = string.Empty;
            try
            {
                Administrator ga = db.Administrators.Single(a => a.ID == ad.ID);

                ga.Username = ad.Username;
                if (ad.Password != "") {
                    ga.Password = ad.Password;
                }
                ga.FullName = ad.FullName;
                ga.Phone = ad.FullName;
                ga.Email = ad.Email;
                ga.Status = ad.Status;
                db.SubmitChanges();
                result = "Sửa thành công!";
            }
            catch (Exception ex)
            { 
                throw ex;
            }
            
            return result;
        }
        public string changePass(int id, string newpass, string oldpass)
        {
            NLLDataContext db = new NLLDataContext();
            string result = string.Empty;
            try
            {
                db.sp_changePassword(id, newpass);
                result = "Đổi mật khẩu thành công!";
            }
            catch (Exception ex)
            {
                
                throw ex;
            }
            
            return result;
        }
        public IEnumerable<Administrator> login(string username, string password) {
            NLLDataContext db = new NLLDataContext();
            IEnumerable<Administrator> ga = from a in db.Administrators 
                                            where a.Username == username && a.Password == password 
                                            select a;

            return ga;
        }
    }
}
